Skip to main content

Video KYC

Description

The Video KYC module verifies the user authenticity using a video verification process led by an agent.

Module NameInputOutput
video_kycThe user's verification video and additional identity details.The complete details of the Video KYC journey of the user with the agent and the auditor details involved in the verification process.

Prerequisites

Ensure collection and verification of the user's PAN and Aadhaar details.
This helps with the following checks.

  • Verification of the PAN details against the information extracted from the user's PAN card with the help of HyperVerge's Optical Character Recognition (OCR) product during the video KYC process.
  • Verification of the face captured from the video during the Video KYC process against the face captured from the PAN card and Aadhaar.

Module Inputs

The following table provides the details of the parameter required for the module.

Parameter Mandatory or Optional Description
aadhaarCreatedDateMandatoryThe date of issue for the user's Aadhaar.
aadhaarNameMandatoryThe name of the user as mentioned on their Aadhaar.
panNumberMandatoryThe Permanent Account Number(PAN) of the user.
aadhaarImageMandatoryThe image of the user's Aadhaar card.

Module Configurations

Kindly contact the HyperVerge team for the configuration details.

Module Outputs

The following section provides the sample and the corresponding details of the various responses you can expect from the module.

The following code is a sample success response with the status code of 200. A success response has the agentDecision value as "VERIFIED" at each step of the verification process (categorized by the stepType field in the videoCallSteps array).



  {
"status": "success",
"statusCode": 200,
"metadata": {
"requestId": "<Request_Identifier>",
"transactionId": "<Transaction_Identifier>"
},
"result": {
"workflowDetails": {
"workflowId": "vkyc_flow",
"version": 1
},
"applicationStatus": "auto_approved",
"results": [
{
"module": "Video Kyc User Generation",
"moduleId": "module_videoKycUserGeneration",
"vkycaadhaarImageUrl": "<VKYC_AADHAAR_IMAGE_URL>",
"apiResponse": {
"url": "?params=xwOShvA",
"status": "success",
"statusCode": 200
},
"attempts": "1",
"previousAttempts": []
},
{
"module": "Video Kyc Verification Info",
"moduleId": "module_verificationInfo",
"apiResponse": {
"status": "success",
"statusCode": 201
},
"attempts": "1",
"previousAttempts": []
},
{
"module": "",
"moduleId": "videokyc",
"vkycrecordingImageUrl": "<VKYC_RECORDING_IMAGE_URL>",
"vkycaadhaarfrontImageUrl": "<VKYC_AADHAAR_FRONT_IMAGE_URL>",
"vkycaddressproofpage1ImageUrl": "<VKYC_ADDRESS_PROOF_PAGE1_IMAGE_URL>",
"vkycaddressproofpage2ImageUrl": "<VKYC_ADDRESS_PROOF_PAGE2_IMAGE_URL>",
"vkycfaceImageUrl": "<VKYC_FACE_IMAGE_URL>",
"vkycpanImageUrl": "<VKYC_PAN_IMAGE_URL>",
"apiResponse": {
"consent": {
"consentedAt": 1708692862999,
"customerConsent": true
},
"location": {
"isCustomerLocationCompliant": true,
"originalLatitude": "<Customer_Latitude>",
"originalLongitude": "<Customer_Longitude>"
},
"videoCallSteps": [
{
"stepType": "otp",
"details": {
"otp": "<OTP>"
},
"agentDecision": "VERIFIED",
"decisionedAt": 1708693022172
},
{
"stepType": "verificationInfo",
"details": {
"category": "personal",
"questions": [
{
"text": "Am I speaking to Mr. <Customer_Name>",
"originalValue": "<Customer_Name>",
"updatedValue": "<Customer_Name>",
"isEdited": false
},
{
"text": "Have you applied for a personal loan from <Bank_Name>?",
"originalValue": "<Yes_or_No>",
"updatedValue": "<Yes_or_No>",
"isEdited": false
},
{
"text": "What is your DOB?",
"originalValue": "<Customer_DOB>",
"updatedValue": "<Customer_DOB>",
"isEdited": false
},
{
"text": "What is your current address Pincode?",
"originalValue": "<Customer_Pincode>",
"updatedValue": "<Customer_Pincode>",
"isEdited": false
},
{
"text": "Are you salaried/self-employed?",
"originalValue": "<Salaried_or_Self_Employed>",
"updatedValue": "<Salaried_or_Self_Employed>",
"isEdited": false
}
]
},
"agentDecision": "VERIFIED",
"decisionedAt": 1708693075064
},
{
"stepType": "pan",
"details": {
"vkycPan": "<VKYC_PAN_IMAGE_URL>",
"ocr": {
"status": "success",
"statusCode": 200,
"result": {
"idType": "pan",
"fieldsExtracted": {
"firstName": {
"value": "<Customer_FirstName>"
},
"middleName": {
"value": "<Customer_MiddleName>"
},
"lastName": {
"value": "<Customer_LastName>"
},
"fullName": {
"value": "<Customer_FullName>"
},
"dateOfBirth": {
"value": "<Customer_DateOfBirth>"
},
"dateOfIssue": {
"value": "<Date_Of_Issue>"
},
"dateOfExpiry": {
"value": "<Date_Of_Expiry>"
},
"countryCode": {
"value": "<Country_Code>"
},
"type": {
"value": "<Type>"
},
"address": {
"value": "<Address>",
"houseNumber": "<House_Number>",
"additionalInfo": "<Additional_Info>",
"province": "<Province>",
"district": "<District>",
"street": "<Street>",
"zipCode": "<Zip_Code>"
},
"gender": {
"value": "<Gender>"
},
"idNumber": {
"value": "<ID_Number>"
},
"placeOfBirth": {
"value": "<Place_Of_Birth>"
},
"placeOfIssue": {
"value": "<Place_Of_Issue>"
},
"yearOfBirth": {
"value": "<Year_Of_Birth>"
},
"age": {
"value": "<Age>"
},
"fatherName": {
"value": "<Father_Name>"
},
"motherName": {
"value": "<Mother_Name>"
},
"husbandName": {
"value": "<Husband_Name>"
},
"spouseName": {
"value": "<Spouse_Name>"
},
"nationality": {
"value": "<Nationality>"
},
"mrzString": {
"value": "<MRZ_String>",
"idNumber": "<ID_Number>",
"fullName": "<Full_Name>",
"dateOfBirth": "<Date_Of_Birth>",
"dateOfExpiry": "<Date_Of_Expiry>",
"gender": "<Gender>",
"nationality": "<Nationality>"
},
"homeTown": {
"value": "<Home_Town>"
}
}
}
},
"faceMatch": [
{
"sourceImageType": "pan",
"match": "yes",
"matchScore": "95.5"
},
{
"sourceImageType": "aadhaar",
"match": "yes",
"matchScore": "92.3"
}
],
"nameMatch": {
"name1": "<Customer_Name_From_PAN>",
"name2": "<Customer_Name_From_Aadhaar>",
"name1Type": "pan",
"name2Type": "aadhaar",
"match": "yes",
"matchScore": "100"
},
"liveness": {
"isLive": "yes",
"livenessScore": "98.7"
}
},
"agentDecision": "VERIFIED",
"decisionedAt": 1708693150000
},
{
"stepType": "aadhaar",
"details": {
"vkycAadhaar": "<VKYC_AADHAAR_IMAGE_URL>",
"ocr": {
"status": "success",
"statusCode": 200,
"result": {
"idType": "aadhaar",
"fieldsExtracted": {
"firstName": {
"value": "<Customer_FirstName>"
},
"middleName": {
"value": "<Customer_MiddleName>"
},
"lastName": {
"value": "<Customer_LastName>"
},
"fullName": {
"value": "<Customer_FullName>"
},
"dateOfBirth": {
"value": "<Customer_DateOfBirth>"
},
"dateOfIssue": {
"value": "<Date_Of_Issue>"
},
"dateOfExpiry": {
"value": "<Date_Of_Expiry>"
},
"countryCode": {
"value": "<Country_Code>"
},
"type": {
"value": "<Type>"
},
"address": {
"value": "<Address>",
"houseNumber": "<House_Number>",
"additionalInfo": "<Additional_Info>",
"province": "<Province>",
"district": "<District>",
"street": "<Street>",
"zipCode": "<Zip_Code>"
},
"gender": {
"value": "<Gender>"
},
"idNumber": {
"value": "<ID_Number>"
},
"placeOfBirth": {
"value": "<Place_Of_Birth>"
},
"placeOfIssue": {
"value": "<Place_Of_Issue>"
},
"yearOfBirth": {
"value": "<Year_Of_Birth>"
},
"age": {
"value": "<Age>"
},
"fatherName": {
"value": "<Father_Name>"
},
"motherName": {
"value": "<Mother_Name>"
},
"husbandName": {
"value": "<Husband_Name>"
},
"spouseName": {
"value": "<Spouse_Name>"
},
"nationality": {
"value": "<Nationality>"
},
"mrzString": {
"value": "<MRZ_String>",
"idNumber": "<ID_Number>",
"fullName": "<Full_Name>",
"dateOfBirth": "<Date_Of_Birth>",
"dateOfExpiry": "<Date_Of_Expiry>",
"gender": "<Gender>",
"nationality": "<Nationality>"
},
"homeTown": {
"value": "<Home_Town>"
}
}
}
},
"faceMatch": [
{
"sourceImageType": "pan",
"match": "yes",
"matchScore": "95.5"
},
{
"sourceImageType": "aadhaar",
"match": "yes",
"matchScore": "92.3"
}
],
"nameMatch": {
"name1": "<Customer_Name_From_PAN>",
"name2": "<Customer_Name_From_Aadhaar>",
"name1Type": "pan",
"name2Type": "aadhaar",
"match": "yes",
"matchScore": "100"
},
"liveness": {
"isLive": "yes",
"livenessScore": "98.7"
}
},
"agentDecision": "VERIFIED",
"decisionedAt": 1708693200000
},
{
"stepType": "face",
"details": {
"vkycFace": "<VKYC_FACE_IMAGE_URL>",
"faceMatch": [
{
"sourceImageType": "pan",
"match": "yes",
"matchScore": "95.5"
},
{
"sourceImageType": "aadhaar",
"match": "yes",
"matchScore": "92.3"
}
],
"nameMatch": {
"name1": "<Customer_Name_From_PAN>",
"name2": "<Customer_Name_From_Aadhaar>",
"name1Type": "pan",
"name2Type": "aadhaar",
"match": "yes",
"matchScore": "100"
},
"liveness": {
"isLive": "yes",
"livenessScore": "98.7"
}
},
"agentDecision": "VERIFIED",
"decisionedAt": 1708693250000
}
],
"videoRecording": "<VKYC_VIDEO_RECORDING_URL>",
"vkycDetails": {
"agentDecision": "approved",
"agentDetails": {
"email": "<Agent_Email>"
},
"comments": ""
},
"auditDetails": {
"auditorDecision": "approved",
"auditorDetails": {
"email": "<Auditor_Email>"
},
"comments": ""
}
}
}
],
"previousAttempts": []
}
}

Response Details

ObjectFieldDescription
vkycDetailsagentDecisionThe field has the "VERIFIED" value in case of successful verification.
vkycDetailscommentsThe comments from the agent.
vkycDetails.agentDetailsnameThe name of the agent responsible for the user's verification process.
vkycDetails.agentDetailsemailThe email ID of the agent responsible for the user's verification process.

Product Change Log

  • February, 2024 - We have updated the response structure for the module.
Was this helpful?
Ask AIBeta
Hi! How can I help?
Ask me anything about HyperVerge products, APIs, and SDKs.
Try asking: